package abd.pr1.Controllers;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.sql.DataSource;

import org.apache.commons.lang3.StringUtils;

import abd.pr1.Interface.AdminNuevoEpisodioWindow;
import abd.pr1.Interface.EditarSerieWindow;
import abd.pr1.Interface.EpisodioWindow;
import abd.pr1.Interface.SerieWindow;
import abd.pr1.Mappers.ClaveSeguidor;
import abd.pr1.Mappers.EpisodiosMapper;
import abd.pr1.Mappers.GenerosMapper;
import abd.pr1.Mappers.SeguidoresMapper;
import abd.pr1.Mappers.SeriesGenerosMapper;
import abd.pr1.Models.Episodio;
import abd.pr1.Models.Genero;
import abd.pr1.Models.Seguidor;
import abd.pr1.Models.Serie;
import abd.pr1.Models.SerieGenero;
import abd.pr1.Models.Usuario;

public class AdminNuevoEpisodioWindowController implements ActionListener{

	
	
	private EditarSerieWindowController editarSerieWindowController;
	private AdminNuevoEpisodioWindow adminNuevoEpisodioWindow;
	private DataSource ds;
	private Serie serie;
	
	public AdminNuevoEpisodioWindowController(EditarSerieWindowController editarSerieWindowController, AdminNuevoEpisodioWindow adminNuevoEpisodioWindow, Serie serie, DataSource ds){
		
		this.editarSerieWindowController= editarSerieWindowController;
		this.adminNuevoEpisodioWindow=adminNuevoEpisodioWindow;
		this.ds=ds;
		this.serie = serie;
		this.adminNuevoEpisodioWindow.addListener(this);
		
	}
		
	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand().equals("cerrar_episodio")){
			 adminNuevoEpisodioWindow.dispose();
		}
		
		if(e.getActionCommand().equals("guardar_episodio")){
			String nombre = adminNuevoEpisodioWindow.getNombre();
			String sinopsis = adminNuevoEpisodioWindow.getSinopsis();
			int orden = Integer.parseInt(adminNuevoEpisodioWindow.getOrden());
			int temporada = Integer.parseInt(adminNuevoEpisodioWindow.getTemporada());
			Date estreno = adminNuevoEpisodioWindow.getEstreno();
			int idSerie = serie.getId();
			Episodio episodio= new Episodio(null, nombre, sinopsis, orden, temporada, estreno, idSerie);
			if(new EpisodiosMapper(ds).insert(episodio)){
				editarSerieWindowController.refreshSerie();
				new EpisodiosMapper(ds).updateEstrenoSerie(serie);
				adminNuevoEpisodioWindow.dispose();
			}
		}
	}


	
}
